发起聊天(基础智能体)-http

概述

该接口用于通过 SSE(Server - Sent Events)方式发送聊天消息并接收大模型处理的流程和结果。

鉴权

出于安全考虑,必须将 TOKEN 存储于服务端并通过后端接口调用,避免在前端代码中直接暴露,以防止凭证泄露造成损失

请在 HTTP 请求的 请求参数中携带 token,见请求体

TOKEN获取可通过 个人令牌 和 OAuth 应用获取,具体见 个人令牌授权OAuth 授权码授权

应用秘钥private_key 的获取具体见 生成应用密钥

请求方法

  • URLhttp://IP:PORT/api/v1/assistant/chat/api
  • 方法POST

请求头

字段 类型 必需 说明
Content-Type string 固定值:application/json

请求体(JSON格式)

参数模型:

字段 类型 必需 默认值 说明
private_key string - 应用密钥,用于身份认证
token string "" 用户令牌,用于个人身份认证
message string | list - 用户消息内容• 文本:字符串• 多模态:对象数组(例:[{"type": "text", "text": "你好"}, {"type": "image_url", "image_url": {...}}]
chat_id string - 当前聊天会话的唯一ID
allow_connect boolean false 是否允许联网搜索
file_list array [] 附件文件列表• 元素格式:{"file_id": "id", "file_name": "name", "file_path": "url"}
image_list array [] 图片列表• 元素格式:{"file_path": "image_url"}
chat_history array [] 历史消息记录• 元素格式:{"role": "user/ai", "content": "消息内容"}

数据结构说明

1. 多模态消息对象

{
  "type": "text" | "image_url",
  # 文本消息
  "text": "string",  
  # 图片消息
  "image_url": {
    "url": "data:image/[type];base64,[data]"
  }
}

2. 工具调用响应格式

{
  "tool_name": "string",    # 工具名称
  "tool_result": "string",  # 工具执行结果
  "type": "start" | "end"   # 调用阶段标识
}

3. 知识库返回格式

{
  "paragraph_source": [int],      # 相关段落ID列表
  "knowledge_source": [           # 知识来源文件
    {"filename": "a.pdf", "url": "http..."}
  ],
  "picture_source": "string",     # 图片资源URL
  "type": "end"
}

响应说明

流式响应(text/event-stream)

事件类型 说明 数据结构
init 任务初始化 {"task_id": "uuid"}
error 错误信息 错误描述字符串
search 联网搜索结果 搜索结果对象数组
reasoning 推理过程 推理文本
assistant AI回复内容 文本片段
tool 工具调用状态 工具调用对象
knowledge 知识库调用 知识库返回对象
workflow 工作流状态 工作流状态对象
end 会话结束 {"message_id": "xxx"}

特殊处理

联网搜索

  • allow_connect=true时激活
  • 返回search事件包含搜索结果

注:完整错误代码参见HTTP状态码规范,业务错误通过error事件传递

注意事项

  • 客户端需要支持接收和解析 SSE 事件流。
  • 确保请求参数中的 chat_idprivate_keytoken 等关键字段正确无误,否则可能导致请求失败或未授权访问。
  • 由于大模型的处理可能需要一定时间,客户端应做好等待和处理延迟的准备。
  • private_keytoken 等关键字段的获取需要前往扳手AI平台 智能体-调用-应用API-KEY 和智能体-调用-认证授权-KEY分别获取
  • 若该接口报错 worker尚未初始化,请联系管理员 请联系对应项目负责人,负责人应前往运维平台进入容器中执行 nohup celery -A dcpai.mqqueue.tasks worker -l info -c 2 & 2为消费者数量 可根据服务器cpu核数和内存数动态调整